
import axios from 'axios'
import { Message } from 'element-ui';
// import router from  '../router/index'
// const METHOD = {
//     // URL: "	http://127.0.0.1:4523/mock/374473"
    // URL:"https://pd.weisou.online"
// }

// 构建axios实例
const instance = axios.create({
	baseURL: "http://220.168.231.5:8213/hydraulic/pc/",
	// baseURL: "http://192.168.0.120:8084/hydraulic/pc/",
    headers: {
        //'content-type': 'application/x-www-form-urlencoded'
				'content-type': 'multipart/form-data'
      },
	// timeout: 5000  // 设置请求超时连接时间
})


// 请求拦截
instance.interceptors.request.use(
    (config) => {
        // 指定请求令牌
            if(localStorage.getItem('token')){
                config.headers["Token"] = localStorage.getItem('token');
            }
        // // 自定义令牌的字段名为X-Token，根据咱们后台再做修改
        return config;
    },
    (error) => {
        // 请求错误的统一处理
        // console.log(error); // for debug
        return Promise.reject(error);
    }
);

// // 响应拦截器
instance.interceptors.response.use(
    /**
     * 通过判断状态码统一处理响应，根据情况修改
     * 同时也可以通过HTTP状态码判断请求结果
     */
    (response) => {
        const res = response.data;
        //异地登录
        // if(res.code==-1){
        //     router.push("/login");
        // }
        // 如果状态码不是200则认为有错误
        // if (!res.success) {
        //     Message.error({
        //         message: res.msg || "Error",
        //         duration: 2 * 1000,
        //     });
        //     return Promise.reject(new Error(res ));
        // } else {
        //     return res;
        // }
        return res;
    },
    (error) => {
        Message({
            message: error.message,
            type: "error",
            duration: 20 * 1000,
        });
        return Promise.reject(error);
    }
);


// * 网络请求
// * @param method 方法
// * @param url 接口地址
// * @param params 参数
// * @param showError 是否展示错误信息
// * @returns {Promise<any>}
async function getMapHttp(url, params, showError) {
    if (showError || showError == undefined) { // 是否展示错误信息
        showError = false;
    } else {
        showError = false;
    }
    return new Promise((resolve, reject) => {
        instance({
            url,
            method:'get',
            params
        }).then((res) => {
            // console.log(res)
						resolve(res);
            // if (res.success) { // 200 是请求成功
            //     resolve(res);
            // } else { // 其他情况返回错误信息，根据需要处理
            //     reject(res);
            //     if (showError) {
            //         Message.error(res.msg);
            //     }
            // }
        }).catch((error) => {
            reject(error);
            // if (showError) {
            //     Message.error('请求失败，请稍后再试');
            // }
        })
    })
}

async function postMapHttp(url, params, showError) {
    if (showError || showError == undefined) { // 是否展示错误信息
        showError = true;
    } else {
        showError = false;
    }
    return new Promise((resolve, reject) => {
        instance({
            url:url,
            method:'post',
            params:params
        }).then((res) => {
            console.log(res.code)
            if (res.code == 200) { // 200 是请求成功
                // console.log('picpipcpic')
                resolve(res);
            } else { // 其他情况返回错误信息，根据需要处理
                reject(res);
                if (showError) {
                    Message.error(res.data.msg);
                }
            }
        }).catch((error) => {
            reject(error);
            // if (showError) {
            //     Message.error('请求失败，请稍后再试');
            // }
        })  
    })
}

function install(Vue) {
    Vue.prototype.$getMapHttp = getMapHttp;
    Vue.prototype.$postMapHttp = postMapHttp;
}
export default install